package com.xmy.cultivate.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.xmy.cultivate.entity.Grade;
import com.xmy.cultivate.entity.Transcript;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xmy.cultivate.entity.TranscriptSafetyDiffSet;
import com.xmy.cultivate.entity.TranscriptSafetyScoreSet;
import com.xmy.cultivate.entity.response.StudentScore;
import com.xmy.cultivate.entity.views.EnteringStudent;
import com.xmy.cultivate.entity.views.ScoreData;
import com.xmy.cultivate.entity.views.ScoreDataDetail;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <p>
 * 成绩管理 服务类
 * </p>
 *
 * @author hpiggy
 * @since 2023-04-14
 */
public interface ITranscriptService extends IService<Transcript> {

    public abstract List<StudentScore> getStudentScore(String openId);

    public abstract List<EnteringStudent> getEnteringStudent(String[] gradeIdList);

    public abstract List<ScoreData> scoreData(String schoolId, String subjectsId, String yearPart, String quarterNum, String examNum, String yearClassId, String type, String include, String courseTypeId, TranscriptSafetyScoreSet tsSet11, TranscriptSafetyScoreSet tsSet12, TranscriptSafetyScoreSet tsSet21, TranscriptSafetyScoreSet tsSet22, TranscriptSafetyScoreSet tsSet32, List<TranscriptSafetyDiffSet> tsSetList);

    /**
     * 实际统计情况
     *
     * @return
     */
    public abstract IPage<ScoreDataDetail> scoreDataDetail(IPage<?> page, String schoolId, String subjectsId, String yearPart, String quarterNum, String examNum, String gradeSection, String yearClassId, String type, String teacherId, String gradeId, String isStatistics, String include, String studentName, String courseTypeId, TranscriptSafetyScoreSet tsSet11, TranscriptSafetyScoreSet tsSet12, TranscriptSafetyScoreSet tsSet21, TranscriptSafetyScoreSet tsSet22, TranscriptSafetyScoreSet tsSet32, List<TranscriptSafetyDiffSet> tsSetList, Integer column, Integer order);

    public List<ScoreData> scoreTeamData(String subjectsId, String yearPart, String quarterNum, String examNum, String yearClassId, String include, String courseTypeId, String classify, String trackType, String teamId, TranscriptSafetyScoreSet tsSet11, TranscriptSafetyScoreSet tsSet12, TranscriptSafetyScoreSet tsSet21, TranscriptSafetyScoreSet tsSet22, TranscriptSafetyScoreSet tsSet32, List<TranscriptSafetyDiffSet> tsSetList);

    public IPage<ScoreDataDetail> scoreDataTeamDetail(IPage<?> page, String schoolId, String subjectsId, String yearPart, String quarterNum, String examNum, String gradeSection, String yearClassId, String type, String teacherId, String gradeId, String isStatistics, String include, String studentName, String courseTypeId, String classify, String trackType, String teamId, TranscriptSafetyScoreSet tsSet11, TranscriptSafetyScoreSet tsSet12, TranscriptSafetyScoreSet tsSet21, TranscriptSafetyScoreSet tsSet22, TranscriptSafetyScoreSet tsSet32, List<TranscriptSafetyDiffSet> tsSetList, Integer column, Integer order);

    /**
     * 退步详情
     *
     * @return
     */
    public abstract IPage<ScoreDataDetail> otherScoreDataDetail(IPage<?> page, String schoolId, String subjectsId, String yearPart, String quarterNum, String examNum, String gradeSection, String yearClassId, String type, String teacherId, String gradeId, String scoreDetailType, String status, String include, String studentName, String courseTypeId, String classify, String trackType, String teamId, Integer column, Integer order);

}
